/* tslint:disable */
/* eslint-disable */
/**
 * Deepfence ThreatMapper
 * Deepfence Runtime API provides programmatic control over Deepfence microservice securing your container, kubernetes and cloud deployments. The API abstracts away underlying infrastructure details like cloud provider,  container distros, container orchestrator and type of deployment. This is one uniform API to manage and control security alerts, policies and response to alerts for microservices running anywhere i.e. managed pure greenfield container deployments or a mix of containers, VMs and serverless paradigms like AWS Fargate.
 *
 * The version of the OpenAPI document: v2.5.3
 * Contact: community@deepfence.io
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


import * as runtime from '../runtime';
import type {
  ApiDocsBadRequestResponse,
  ApiDocsFailureResponse,
  CompletionCompletionNodeFieldReq,
  CompletionCompletionNodeFieldRes,
} from '../models';
import {
    ApiDocsBadRequestResponseFromJSON,
    ApiDocsBadRequestResponseToJSON,
    ApiDocsFailureResponseFromJSON,
    ApiDocsFailureResponseToJSON,
    CompletionCompletionNodeFieldReqFromJSON,
    CompletionCompletionNodeFieldReqToJSON,
    CompletionCompletionNodeFieldResFromJSON,
    CompletionCompletionNodeFieldResToJSON,
} from '../models';

export interface CompleteCloudAccountRequest {
    completionCompletionNodeFieldReq?: CompletionCompletionNodeFieldReq;
}

export interface CompleteCloudComplianceRequest {
    completionCompletionNodeFieldReq?: CompletionCompletionNodeFieldReq;
}

export interface CompleteCloudResourcesRequest {
    completionCompletionNodeFieldReq?: CompletionCompletionNodeFieldReq;
}

export interface CompleteComplianceInfoRequest {
    completionCompletionNodeFieldReq?: CompletionCompletionNodeFieldReq;
}

export interface CompleteContainerImageInfoRequest {
    completionCompletionNodeFieldReq?: CompletionCompletionNodeFieldReq;
}

export interface CompleteContainerInfoRequest {
    completionCompletionNodeFieldReq?: CompletionCompletionNodeFieldReq;
}

export interface CompleteHostInfoRequest {
    completionCompletionNodeFieldReq?: CompletionCompletionNodeFieldReq;
}

export interface CompleteKubernetesClusterInfoRequest {
    completionCompletionNodeFieldReq?: CompletionCompletionNodeFieldReq;
}

export interface CompletePodInfoRequest {
    completionCompletionNodeFieldReq?: CompletionCompletionNodeFieldReq;
}

export interface CompleteProcessInfoRequest {
    completionCompletionNodeFieldReq?: CompletionCompletionNodeFieldReq;
}

export interface CompleteVulnerabilityInfoRequest {
    completionCompletionNodeFieldReq?: CompletionCompletionNodeFieldReq;
}

/**
 * CompletionApi - interface
 * 
 * @export
 * @interface CompletionApiInterface
 */
export interface CompletionApiInterface {
    /**
     * Complete cloud account info
     * @summary Get Completion for cloud account fields
     * @param {CompletionCompletionNodeFieldReq} [completionCompletionNodeFieldReq] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CompletionApiInterface
     */
    completeCloudAccountRaw(requestParameters: CompleteCloudAccountRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>>;

    /**
     * Complete cloud account info
     * Get Completion for cloud account fields
     */
    completeCloudAccount(requestParameters: CompleteCloudAccountRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes>;

    /**
     * Complete cloud compliance info
     * @summary Get Completion for cloud compliance fields
     * @param {CompletionCompletionNodeFieldReq} [completionCompletionNodeFieldReq] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CompletionApiInterface
     */
    completeCloudComplianceRaw(requestParameters: CompleteCloudComplianceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>>;

    /**
     * Complete cloud compliance info
     * Get Completion for cloud compliance fields
     */
    completeCloudCompliance(requestParameters: CompleteCloudComplianceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes>;

    /**
     * Complete cloud resources info
     * @summary Get Completion for cloud resources fields
     * @param {CompletionCompletionNodeFieldReq} [completionCompletionNodeFieldReq] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CompletionApiInterface
     */
    completeCloudResourcesRaw(requestParameters: CompleteCloudResourcesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>>;

    /**
     * Complete cloud resources info
     * Get Completion for cloud resources fields
     */
    completeCloudResources(requestParameters: CompleteCloudResourcesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes>;

    /**
     * Complete compliance info
     * @summary Get Completion for compliance fields
     * @param {CompletionCompletionNodeFieldReq} [completionCompletionNodeFieldReq] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CompletionApiInterface
     */
    completeComplianceInfoRaw(requestParameters: CompleteComplianceInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>>;

    /**
     * Complete compliance info
     * Get Completion for compliance fields
     */
    completeComplianceInfo(requestParameters: CompleteComplianceInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes>;

    /**
     * Complete Container Image info
     * @summary Get Completion for Container Image fields
     * @param {CompletionCompletionNodeFieldReq} [completionCompletionNodeFieldReq] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CompletionApiInterface
     */
    completeContainerImageInfoRaw(requestParameters: CompleteContainerImageInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>>;

    /**
     * Complete Container Image info
     * Get Completion for Container Image fields
     */
    completeContainerImageInfo(requestParameters: CompleteContainerImageInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes>;

    /**
     * Complete Container info
     * @summary Get Completion for Container fields
     * @param {CompletionCompletionNodeFieldReq} [completionCompletionNodeFieldReq] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CompletionApiInterface
     */
    completeContainerInfoRaw(requestParameters: CompleteContainerInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>>;

    /**
     * Complete Container info
     * Get Completion for Container fields
     */
    completeContainerInfo(requestParameters: CompleteContainerInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes>;

    /**
     * Complete host info
     * @summary Get Completion for host fields
     * @param {CompletionCompletionNodeFieldReq} [completionCompletionNodeFieldReq] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CompletionApiInterface
     */
    completeHostInfoRaw(requestParameters: CompleteHostInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>>;

    /**
     * Complete host info
     * Get Completion for host fields
     */
    completeHostInfo(requestParameters: CompleteHostInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes>;

    /**
     * Complete kubernetes cluster info
     * @summary Get Completion for kubernetes cluster fields
     * @param {CompletionCompletionNodeFieldReq} [completionCompletionNodeFieldReq] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CompletionApiInterface
     */
    completeKubernetesClusterInfoRaw(requestParameters: CompleteKubernetesClusterInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>>;

    /**
     * Complete kubernetes cluster info
     * Get Completion for kubernetes cluster fields
     */
    completeKubernetesClusterInfo(requestParameters: CompleteKubernetesClusterInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes>;

    /**
     * Complete Pod info
     * @summary Get Completion for Pod fields
     * @param {CompletionCompletionNodeFieldReq} [completionCompletionNodeFieldReq] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CompletionApiInterface
     */
    completePodInfoRaw(requestParameters: CompletePodInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>>;

    /**
     * Complete Pod info
     * Get Completion for Pod fields
     */
    completePodInfo(requestParameters: CompletePodInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes>;

    /**
     * Complete process info
     * @summary Get Completion for process fields
     * @param {CompletionCompletionNodeFieldReq} [completionCompletionNodeFieldReq] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CompletionApiInterface
     */
    completeProcessInfoRaw(requestParameters: CompleteProcessInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>>;

    /**
     * Complete process info
     * Get Completion for process fields
     */
    completeProcessInfo(requestParameters: CompleteProcessInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes>;

    /**
     * Complete vulnerability info
     * @summary Get Completion for vulnerability fields
     * @param {CompletionCompletionNodeFieldReq} [completionCompletionNodeFieldReq] 
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CompletionApiInterface
     */
    completeVulnerabilityInfoRaw(requestParameters: CompleteVulnerabilityInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>>;

    /**
     * Complete vulnerability info
     * Get Completion for vulnerability fields
     */
    completeVulnerabilityInfo(requestParameters: CompleteVulnerabilityInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes>;

}

/**
 * 
 */
export class CompletionApi extends runtime.BaseAPI implements CompletionApiInterface {

    /**
     * Complete cloud account info
     * Get Completion for cloud account fields
     */
    async completeCloudAccountRaw(requestParameters: CompleteCloudAccountRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>> {
        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("bearer_token", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/deepfence/complete/cloud-account`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: CompletionCompletionNodeFieldReqToJSON(requestParameters.completionCompletionNodeFieldReq),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => CompletionCompletionNodeFieldResFromJSON(jsonValue));
    }

    /**
     * Complete cloud account info
     * Get Completion for cloud account fields
     */
    async completeCloudAccount(requestParameters: CompleteCloudAccountRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes> {
        const response = await this.completeCloudAccountRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * Complete cloud compliance info
     * Get Completion for cloud compliance fields
     */
    async completeCloudComplianceRaw(requestParameters: CompleteCloudComplianceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>> {
        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("bearer_token", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/deepfence/complete/cloud-compliance`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: CompletionCompletionNodeFieldReqToJSON(requestParameters.completionCompletionNodeFieldReq),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => CompletionCompletionNodeFieldResFromJSON(jsonValue));
    }

    /**
     * Complete cloud compliance info
     * Get Completion for cloud compliance fields
     */
    async completeCloudCompliance(requestParameters: CompleteCloudComplianceRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes> {
        const response = await this.completeCloudComplianceRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * Complete cloud resources info
     * Get Completion for cloud resources fields
     */
    async completeCloudResourcesRaw(requestParameters: CompleteCloudResourcesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>> {
        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("bearer_token", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/deepfence/complete/cloud-resources`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: CompletionCompletionNodeFieldReqToJSON(requestParameters.completionCompletionNodeFieldReq),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => CompletionCompletionNodeFieldResFromJSON(jsonValue));
    }

    /**
     * Complete cloud resources info
     * Get Completion for cloud resources fields
     */
    async completeCloudResources(requestParameters: CompleteCloudResourcesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes> {
        const response = await this.completeCloudResourcesRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * Complete compliance info
     * Get Completion for compliance fields
     */
    async completeComplianceInfoRaw(requestParameters: CompleteComplianceInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>> {
        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("bearer_token", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/deepfence/complete/compliance`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: CompletionCompletionNodeFieldReqToJSON(requestParameters.completionCompletionNodeFieldReq),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => CompletionCompletionNodeFieldResFromJSON(jsonValue));
    }

    /**
     * Complete compliance info
     * Get Completion for compliance fields
     */
    async completeComplianceInfo(requestParameters: CompleteComplianceInfoRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes> {
        const response = await this.completeComplianceInfoRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * Complete Container Image info
     * Get Completion for Container Image fields
     */
    async completeContainerImageInfoRaw(requestParameters: CompleteContainerImageInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>> {
        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("bearer_token", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/deepfence/complete/containerimage`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: CompletionCompletionNodeFieldReqToJSON(requestParameters.completionCompletionNodeFieldReq),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => CompletionCompletionNodeFieldResFromJSON(jsonValue));
    }

    /**
     * Complete Container Image info
     * Get Completion for Container Image fields
     */
    async completeContainerImageInfo(requestParameters: CompleteContainerImageInfoRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes> {
        const response = await this.completeContainerImageInfoRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * Complete Container info
     * Get Completion for Container fields
     */
    async completeContainerInfoRaw(requestParameters: CompleteContainerInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>> {
        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("bearer_token", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/deepfence/complete/container`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: CompletionCompletionNodeFieldReqToJSON(requestParameters.completionCompletionNodeFieldReq),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => CompletionCompletionNodeFieldResFromJSON(jsonValue));
    }

    /**
     * Complete Container info
     * Get Completion for Container fields
     */
    async completeContainerInfo(requestParameters: CompleteContainerInfoRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes> {
        const response = await this.completeContainerInfoRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * Complete host info
     * Get Completion for host fields
     */
    async completeHostInfoRaw(requestParameters: CompleteHostInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>> {
        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("bearer_token", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/deepfence/complete/host`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: CompletionCompletionNodeFieldReqToJSON(requestParameters.completionCompletionNodeFieldReq),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => CompletionCompletionNodeFieldResFromJSON(jsonValue));
    }

    /**
     * Complete host info
     * Get Completion for host fields
     */
    async completeHostInfo(requestParameters: CompleteHostInfoRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes> {
        const response = await this.completeHostInfoRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * Complete kubernetes cluster info
     * Get Completion for kubernetes cluster fields
     */
    async completeKubernetesClusterInfoRaw(requestParameters: CompleteKubernetesClusterInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>> {
        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("bearer_token", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/deepfence/complete/kubernetes-cluster`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: CompletionCompletionNodeFieldReqToJSON(requestParameters.completionCompletionNodeFieldReq),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => CompletionCompletionNodeFieldResFromJSON(jsonValue));
    }

    /**
     * Complete kubernetes cluster info
     * Get Completion for kubernetes cluster fields
     */
    async completeKubernetesClusterInfo(requestParameters: CompleteKubernetesClusterInfoRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes> {
        const response = await this.completeKubernetesClusterInfoRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * Complete Pod info
     * Get Completion for Pod fields
     */
    async completePodInfoRaw(requestParameters: CompletePodInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>> {
        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("bearer_token", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/deepfence/complete/pod`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: CompletionCompletionNodeFieldReqToJSON(requestParameters.completionCompletionNodeFieldReq),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => CompletionCompletionNodeFieldResFromJSON(jsonValue));
    }

    /**
     * Complete Pod info
     * Get Completion for Pod fields
     */
    async completePodInfo(requestParameters: CompletePodInfoRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes> {
        const response = await this.completePodInfoRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * Complete process info
     * Get Completion for process fields
     */
    async completeProcessInfoRaw(requestParameters: CompleteProcessInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>> {
        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("bearer_token", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/deepfence/complete/process`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: CompletionCompletionNodeFieldReqToJSON(requestParameters.completionCompletionNodeFieldReq),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => CompletionCompletionNodeFieldResFromJSON(jsonValue));
    }

    /**
     * Complete process info
     * Get Completion for process fields
     */
    async completeProcessInfo(requestParameters: CompleteProcessInfoRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes> {
        const response = await this.completeProcessInfoRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * Complete vulnerability info
     * Get Completion for vulnerability fields
     */
    async completeVulnerabilityInfoRaw(requestParameters: CompleteVulnerabilityInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CompletionCompletionNodeFieldRes>> {
        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("bearer_token", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/deepfence/complete/vulnerability`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: CompletionCompletionNodeFieldReqToJSON(requestParameters.completionCompletionNodeFieldReq),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => CompletionCompletionNodeFieldResFromJSON(jsonValue));
    }

    /**
     * Complete vulnerability info
     * Get Completion for vulnerability fields
     */
    async completeVulnerabilityInfo(requestParameters: CompleteVulnerabilityInfoRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CompletionCompletionNodeFieldRes> {
        const response = await this.completeVulnerabilityInfoRaw(requestParameters, initOverrides);
        return await response.value();
    }

}
